/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package modulos.consulta.oftalmologia.modelo;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.persistence.*;
import modulos.consulta.modelo.*;
import modulos.paciente.modelo.Paciente;
import modulos.usuario.modelo.Usuario;

/**
 *
 * @author medikux
 */
@Entity
public class ConsultaOftalmologia implements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private int idConsulta;
    @Column(length = 400)
    private String enfermedadActual;
    private int numConsul;
    @Temporal(javax.persistence.TemporalType.TIMESTAMP)
    private Date fechaCreacion;
    @ManyToMany(cascade = CascadeType.PERSIST, fetch = FetchType.LAZY)
    private List<Motivo_Consulta> motivo_Consulta = new ArrayList<Motivo_Consulta>();
    @Column(length = 400)
    private String antecedent_Fami;
    @Column(length = 400)
    private String antecedent_Person;
    @Column(length = 400)
    private String oculares;
    @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
    private List<Diagnostico> diagnosticos = new ArrayList<Diagnostico>();
    private String anexos;
    @OneToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
    private Receta_Medica recetaMedica = new Receta_Medica();
    @ManyToOne
    private Usuario usuario = new Usuario();
    @ManyToOne
    private Paciente paciente = new Paciente();
    @OneToMany(mappedBy = "consultaOftalmologia", cascade = CascadeType.ALL)
    private List<EvolucionOftalmologia> evolucionOftalmologias = new ArrayList<EvolucionOftalmologia>();
    
    @OneToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
    private SegmentoAnterior segmentoAnterior = new SegmentoAnterior();  
    @OneToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
    private SegmentoPosterior segmentoPosterior = new SegmentoPosterior();
    @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
    private List<ProcedimientoEspecial> procedimientoEspecials = new ArrayList<ProcedimientoEspecial>();
    @OneToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
    private RecetaOftalmologia recetaOftal= new RecetaOftalmologia();

    public ConsultaOftalmologia() {
        procedimientoEspecials=new ArrayList<ProcedimientoEspecial>();
    }

    /**
     * @return the enfermedadActual
     */
    public String getEnfermedadActual() {
        return enfermedadActual;
    }

    /**
     * @param enfermedadActual the enfermedadActual to set
     */
    public void setEnfermedadActual(String enfermedadActual) {
        this.enfermedadActual = enfermedadActual;
    }

    /**
     * @return the fechaCreacion
     */
    public Date getFechaCreacion() {
        return fechaCreacion;
    }

    /**
     * @param fechaCreacion the fechaCreacion to set
     */
    public void setFechaCreacion(Date fechaCreacion) {
        this.fechaCreacion = fechaCreacion;
    }

    /**
     * @return the motivo_Consulta
     */
    public List<Motivo_Consulta> getMotivo_Consulta() {
        return motivo_Consulta;
    }

    /**
     * @param motivo_Consulta the motivo_Consulta to set
     */
    public void setMotivo_Consulta(List<Motivo_Consulta> motivo_Consulta) {
        this.motivo_Consulta = motivo_Consulta;
    }

    /**
     * @return the idConsulta
     */
    public int getIdConsulta() {
        return idConsulta;
    }

    /**
     * @param idConsulta the idConsulta to set
     */
    public void setIdConsulta(int idConsulta) {
        this.idConsulta = idConsulta;
    }

    /**
     * @return the numConsul
     */
    public int getNumConsul() {
        return numConsul;
    }

    /**
     * @param numConsul the numConsul to set
     */
    public void setNumConsul(int numConsul) {
        this.numConsul = numConsul;
    }

    /**
     * @return the antecedent_Fami
     */
    public String getAntecedent_Fami() {
        return antecedent_Fami;
    }

    /**
     * @param antecedent_Fami the antecedent_Fami to set
     */
    public void setAntecedent_Fami(String antecedent_Fami) {
        this.antecedent_Fami = antecedent_Fami;
    }

    /**
     * @return the antecedent_Person
     */
    public String getAntecedent_Person() {
        return antecedent_Person;
    }

    /**
     * @param antecedent_Person the antecedent_Person to set
     */
    public void setAntecedent_Person(String antecedent_Person) {
        this.antecedent_Person = antecedent_Person;
    }

    /**
     * @return the recetaMedica
     */
    public Receta_Medica getRecetaMedica() {
        return recetaMedica;
    }

    /**
     * @param recetaMedica the recetaMedica to set
     */
    public void setRecetaMedica(Receta_Medica recetaMedica) {
        this.recetaMedica = recetaMedica;
    }

    
    /**
     * @return the usuario
     */
    public Usuario getUsuario() {
        return usuario;
    }

    /**
     * @param usuario the usuario to set
     */
    public void setUsuario(Usuario usuario) {
        this.usuario = usuario;
    }

    /**
     * @return the paciente
     */
    public Paciente getPaciente() {
        return paciente;
    }

    /**
     * @param paciente the paciente to set
     */
    public void setPaciente(Paciente paciente) {
        this.paciente = paciente;
    }

    /**
     * @return the oculares
     */
    public String getOculares() {
        return oculares;
    }

    /**
     * @param oculares the oculares to set
     */
    public void setOculares(String oculares) {
        this.oculares = oculares;
    }

    /**
     * @return the diagnosticos
     */
    public List<Diagnostico> getDiagnosticos() {
        return diagnosticos;
    }

    /**
     * @param diagnosticos the diagnosticos to set
     */
    public void setDiagnosticos(List<Diagnostico> diagnosticos) {
        this.diagnosticos = diagnosticos;
    }

    /**
     * @return the anexos
     */
    public String getAnexos() {
        return anexos;
    }

    /**
     * @param anexos the anexos to set
     */
    public void setAnexos(String anexos) {
        this.anexos = anexos;
    }

    /**
     * @return the segmentoAnterior
     */
    public SegmentoAnterior getSegmentoAnterior() {
        return segmentoAnterior;
    }

    /**
     * @param segmentoAnterior the segmentoAnterior to set
     */
    public void setSegmentoAnterior(SegmentoAnterior segmentoAnterior) {
        this.segmentoAnterior = segmentoAnterior;
    }

    /**
     * @return the segmentoPosterior
     */
    public SegmentoPosterior getSegmentoPosterior() {
        return segmentoPosterior;
    }

    /**
     * @param segmentoPosterior the segmentoPosterior to set
     */
    public void setSegmentoPosterior(SegmentoPosterior segmentoPosterior) {
        this.segmentoPosterior = segmentoPosterior;
    }

    /**
     * @return the evolucionOftalmologias
     */
    public List<EvolucionOftalmologia> getEvolucionOftalmologias() {
        return evolucionOftalmologias;
    }

    /**
     * @return the procedimientoEspecials
     */
    public List<ProcedimientoEspecial> getProcedimientoEspecials() {
        return procedimientoEspecials;
    }

    /**
     * @return the recetaOftal
     */
    public RecetaOftalmologia getRecetaOftal() {
        return recetaOftal;
    }

    /**
     * @param recetaOftal the recetaOftal to set
     */
    public void setRecetaOftal(RecetaOftalmologia recetaOftal) {
        this.recetaOftal = recetaOftal;
    }
}
